package com.xuecheng.message.sdk.model.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 消息表
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@TableName("mq_message")
@ApiModel(description="媒资信息")
public class MqMessage implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 消息id
     */
    @ApiModelProperty(value = "消息id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 消息类型代码: course_publish ,  media_test,
     */
    @ApiModelProperty(value = "消息类型代码: course_publish ,  media_test")
    private String messageType;

    /**
     * 关联业务信息
     */
    @ApiModelProperty(value = "关联业务信息1")
    private String businessKey1;

    /**
     * 关联业务信息
     */
    @ApiModelProperty(value = "关联业务信息2")
    private String businessKey2;

    /**
     * 关联业务信息
     */
    @ApiModelProperty(value = "关联业务信息3")
    private String businessKey3;

    /**
     * 执行次数
     */
    @ApiModelProperty(value = "执行次数")
    private Integer executeNum;

    /**
     * 处理状态，0:初始，1:成功
     */
    @ApiModelProperty(value = "处理状态，0:初始，1:成功")
    private String state;

    /**
     * 回复失败时间
     */
    @ApiModelProperty(value = "回复失败时间")
    private LocalDateTime returnFailureDate;

    /**
     * 回复成功时间
     */
    @ApiModelProperty(value = "回复成功时间")
    private LocalDateTime returnSuccessDate;

    /**
     * 回复失败内容
     */
    @ApiModelProperty(value = "回复失败内容")
    private String returnFailureMsg;

    /**
     * 最近执行时间
     */
    @ApiModelProperty(value = "最近执行时间")
    private LocalDateTime executeDate;

    /**
     * 阶段1处理状态, 0:初始，1:成功
     */
    @ApiModelProperty(value = "阶段1处理状态, 0:初始，1:成功")
    private String stageState1;

    /**
     * 阶段2处理状态, 0:初始，1:成功
     */
    @ApiModelProperty(value = "阶段2处理状态, 0:初始，1:成功")
    private String stageState2;

    /**
     * 阶段3处理状态, 0:初始，1:成功
     */
    @ApiModelProperty(value = "阶段3处理状态, 0:初始，1:成功")
    private String stageState3;

    /**
     * 阶段4处理状态, 0:初始，1:成功
     */
    @ApiModelProperty(value = "阶段4处理状态, 0:初始，1:成功")
    private String stageState4;
}
